8、等差数列
题目 等差数列
思路分析
确定最大项和最小项后 得知公差 就可以算出长度
所以要确定一个最大的合法的公差
即在所有可能的公差里 找一个最大公约数
代码实现
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N];
int main()
{
int n;cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
int d=0;
for(int i=1;i<=n;i++){
d=__gcd(d,a[i]-a[1]);
}
if(!d)
cout<<n;
else
cout<<(a[n]-a[1])/d+1;
return 0;
}
同类题型
视频讲解
⬅️ 7、完全二叉树的权值 🏠 00-刷题理模型 ➡️ 9、后缀表达式
💬 评论